package JianZhiOffer;


/**
 * 二维数组，往右往下都是增大的数
 * 给出一个数，判断是否存在二维数组内
 * */
class Solution04 {

    /**
     * 从右上角开始
     * 遇到比target大的往下走，遇到比target小的往左走，等于target返回true
     * 结束条件是行号，列号不超过边界
     * */
    public static boolean findNumberIn2DArray(int[][] matrix, int target) {
        if(matrix == null || matrix.length == 0 || matrix[0].length == 0) return false;

        int rows = 0; int columns = matrix[0].length - 1;
        // 此处错在rows < matrix.length -1
        while(rows <= matrix.length -1 && columns >= 0){
            if(matrix[rows][columns] == target) return true;
            if(matrix[rows][columns] > target) columns--;
            else rows++;
        }
        return false;
    }

    public static void main(String[] args) {
        System.out.println(findNumberIn2DArray(new int[][]{new int[]{-5}}, -5));
    }
}